/*
 * regler.h
 *
 *      Author: Jonas
 *      Letztes Update: 03.11.13 Christian | Code aufräumen
 *
 */

#ifndef REGLER_H_
#define REGLER_H_

#include <avr/io.h>
#include <avr/eeprom.h>

#include "Kalman.h"
#include "Scheduler.h"
#include "UART.h"
#include "Mathe.h"

//Defines für Regelangrößen:

//maximales Offset des Reglers vom Throttle
#define REGLER_LIMIT 	20

//Maximalwert, den Throttle annehmen darf
#define THROTTLE_MAX 	80
#define REGLER_MIN		10

#define VZ_MIN			1
#define Z_LIMIT			5

extern int8_t motor_werte[];


/* Berechnung der Motorwerte.
 * Zielwinkel: 100 entspricht 1grad
 */
void calcMotorValues( uint8_t throttle, int16_t winkel_x, int16_t winkel_y, int16_t v_Z );

void calc_Z(int16_t v);

// PID-Anteile aus EEPROM lesen
void regler_init();

// NEUE PID Anteile Empfangen und in EEPROM speichern
void reglerwerte_update();

#endif
